<?php
class UsersController extends AppController {

	var $name = 'Users';
	var $paginate = array(
              'limit' => 10,
              'order' => array(
                'User.id' => 'asc'
                )
              );  
	function beforeFilter() {        
        parent::beforeFilter();
		$this->Auth->allow('login','logout');
        //----------------
	    $this->Auth->authorize = 'actions';
        $this->Auth->loginAction = array('controller' => 'users', 'action' => 'login');
        $this->Auth->logoutRedirect = array('controller' => 'users', 'action' => 'login');
        $this->Auth->loginRedirect = array('controller' => 'projects', 'action' => 'index');
		//--------------------
    }
	function index() {
		$this->User->recursive = 0;
		$this->set('users', $this->paginate());
	}

	function view($id = null) {
		if (!$id) {
			$this->Session->setFlash(__('Invalid user', true));
			$this->redirect(array('action' => 'index'));
		}
		$this->set('user', $this->User->read(null, $id));
	}

	function add() {
		if (!empty($this->data)) {
			$this->User->create();
			if ($this->User->save($this->data)) {
				$this->Session->setFlash(__('Tài khoản <b>'.$this->data[User]['username'].'</b> được tạo', true));
				$this->redirect(array('action' => 'index'));
			} else {
				$this->Session->setFlash(__('Thông tin người dùng chưa được tạo, hãy thử lại', true));
			}
		}
		$groups = $this->User->Group->find('list');
		$this->set(compact('groups'));
	}
	
	function set_add($id = null) {
		if (!$id) {
			$this->Session->setFlash(__('Chọn lại thông tin', true));
			$this->redirect(array('action' => 'index'));
		}
		if (!empty($this->data)) {
			$this->User->create();
			if ($this->User->save($this->data)) {
				$this->Session->setFlash(__('Tài khoản <b>'.$this->data[User]['name'].'</b> được tạo', true));
				$this->redirect(array('controller'=>'groups','action' => 'view/'.$this->data['User']['group_id']));
			} else {
				$this->Session->setFlash(__('Thông tin người dùng chưa được tạo, hãy thử lại', true));
			}
		}

		$get_groups = $this->User->Group->findById($id);
		$groups = $get_groups['Group'];
		$this->set(compact('groups'));
		if($id=='1'){
			$classStudent = $this->User->ClassStudent->find('list');
			$this->set('classStudent',$classStudent);
		}
	}

	function edit($id = null) {
		if (!$id && empty($this->data)) {
			$this->Session->setFlash(__('Invalid user', true));
			$this->redirect(array('action' => 'index'));
		}
		if (!empty($this->data)) {
			
			if(!empty($this->data['User']['password_new'])){
				if(strlen(($this->data['User']['password_new'])<6)){
					$this->Session->setFlash(__('Mật khẩu mới lớn hơn 6 ký tự', true));
					$this->redirect(array('action' => 'edit/'.$this->data['User']['id']));
				}
				$this->data['User']['password'] = $this->Auth->password($this->data['User']['password_new']);
				var_dump($this->data['User']['password_new']);
			}
			if ($this->User->save($this->data)) {
				$this->Session->setFlash(__('Thông tin được lưu', true));
				$this->redirect(array('action' => 'index'));
			} else {
				$this->Session->setFlash(__('Thông tin chưa được lưu. Hãy kiểm tra lại', true));
			}
		}
		if (empty($this->data)) {
			$this->data = $this->User->read(null, $id);
		}
		$groups = $this->User->Group->find('list');
		$this->set(compact('groups'));
	}

	function delete($id = null) {
		if (!$id) {
			$this->Session->setFlash(__('Invalid id for user', true));
			$this->redirect(array('action'=>'index'));
		}
		if($id == '1' || $id == '2' || $id == '3'){
			$this->Session->setFlash(__('Đây là những nhóm làm việc chính của hệ thống, Không thể xóa được', true));
			$this->redirect(array('action'=>'index'));
		}
		if ($this->User->delete($id)) {
			$this->Session->setFlash(__('User deleted', true));
			$this->redirect(array('action'=>'index'));
		}
		$this->Session->setFlash(__('User was not deleted', true));
		$this->redirect(array('action' => 'index'));
	}
	function login(){
	   $this->layout = "nomenu";
	   if (empty($this->data)) {
            $cookie = $this->Cookie->read('Auth.User');
            if (!is_null($cookie)) {
                if ($this->Auth->login($cookie)) {
                    // Clear auth message, just in case we use it.
                    $this->Session->delete('Message.auth');
                    $this->redirect($this->Auth->redirect());
                } else { // Delete invalid Cookie
                    $this->Cookie->delete('Auth.User');
                    }
            }
        }
        
        if ($this->Auth->user()) {
            if (!empty($this->data) && $this->data['User']['remember_me']) {
                $cookie = array();
                $cookie['username'] = $this->data['User']['username'];
                $cookie['password'] = $this->data['User']['password'];
                $this->Cookie->write('Auth.User', $cookie, true, '+2 weeks');
                unset($this->data['User']['remember_me']);
            }
           $this->Session->setFlash("Đăng nhập thành công");
           $this->redirect($this->Auth->redirect());
        }   
	}
	
	function logout() {
	   // $this->Session->setFlash("You are loged out!");
		$this->Auth->logout();
        $cookie = $this->Cookie->read('Auth.User');
        if (!is_null($cookie)) {
            $this->Cookie->delete('Auth.User');
        }
		$this->Session->setFlash("Đăng xuất thành công");
      $this->redirect('login');
	}
}
?>